<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml"
  xmlns:bands="http://projectsexception.com/festivales/bands">

  <xsl:template match="/">
    <bands:content xmlns="http://www.w3.org/1999/xhtml"
      xmlns:bands="http://projectsexception.com/festivales/bands">
      <xsl:call-template name="metadata" />
      <xsl:call-template name="details" />
    </bands:content>
  </xsl:template>

  <xsl:template name="details">
    <bands:detail>
      <xsl:apply-templates
        select="//xhtml:div[@id='bodyContent']/child::node()" mode="print" />
    </bands:detail>
  </xsl:template>

  <xsl:template name="metadata">
    <bands:metadata>
      <xsl:apply-templates
        select="//xhtml:table[contains(@class,'infobox')]//xhtml:tr"
        mode="metadata" />
    </bands:metadata>
  </xsl:template>

  <xsl:template match="xhtml:tr[position()=1]" mode="metadata"
    priority="10">
    <bands:data>
      <bands:title>
        <xsl:text>name</xsl:text>
      </bands:title>
      <bands:value>
        <xsl:value-of select="xhtml:th" />
      </bands:value>
    </bands:data>
  </xsl:template>

  <xsl:template match="xhtml:tr" mode="metadata">
    <xsl:if test="xhtml:td">
      <bands:data>
        <bands:title>
          <xsl:choose>
            <xsl:when test="xhtml:td//xhtml:img">
              <xsl:text>image</xsl:text>
            </xsl:when>
            <xsl:when test="not(xhtml:th)">
              <xsl:text>unknown</xsl:text>
            </xsl:when>
            <xsl:otherwise>
              <xsl:value-of select="xhtml:th" />
            </xsl:otherwise>
          </xsl:choose>
        </bands:title>

        <bands:value>
          <xsl:choose>
            <xsl:when test="xhtml:td//xhtml:img">
              <xsl:value-of select="xhtml:td//xhtml:img/@src" />
            </xsl:when>
            <xsl:otherwise>
              <xsl:copy-of select="xhtml:td/child::node()" />
            </xsl:otherwise>
          </xsl:choose>
        </bands:value>
      </bands:data>
    </xsl:if>
  </xsl:template>

  <xsl:template match="xhtml:p|xhtml:h1|xhtml:h2|xhtml:h3"
    mode="print">
    <xsl:copy-of select="." />
  </xsl:template>

  <xsl:template match="*" priority="-1" mode="print">
  </xsl:template>

</xsl:stylesheet>